#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct QUAD8ForceData
{
    SG::DataStructure::Common::Id   m_eId      = 0;      /// Element identification number
    char                            m_TERM[4]  = { 0 };  /// Character string "CEN/"
    SG::DataStructure::Common::Id   m_GRID[5]  = { 0 };  /// Number of active grids or corner grid ID
    SG::DataStructure::Common::Real m_MX[5]    = { 0 };  /// Membrane force  in x
    SG::DataStructure::Common::Real m_MY[5]    = { 0 };  /// Membrane force  in y
    SG::DataStructure::Common::Real m_MXY[5]   = { 0 };  /// Membrane force  in xy
    SG::DataStructure::Common::Real m_BMX[5]   = { 0 };  /// Bending   moment in x
    SG::DataStructure::Common::Real m_BMY[5]   = { 0 };  /// Bending   moment in y
    SG::DataStructure::Common::Real m_BMXY[5]  = { 0 };  /// Bending   moment in xy
    SG::DataStructure::Common::Real m_TX[5]    = { 0 };  /// Shear  force  in x
    SG::DataStructure::Common::Real m_TY[5]    = { 0 };  /// Shear  force  in y
    SG::DataStructure::Common::Id   m_domainId = 0;      /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const QUAD8ForceData& val1, const QUAD8ForceData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const QUAD8ForceData& a, const QUAD8ForceData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
